From 941167e6d8dcb46104c4463c2486bc2c9c16d294 Mon Sep 17 00:00:00 2001 From: Arturo Espinosa Date: Thu, 28 Oct 1999 16:13:49 +0000 Subject: [PATCH] Sync to desktop - Federico --- gdk/gdkpixbuf-render.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/gdk/gdkpixbuf-render.c b/gdk/gdkpixbuf-render.c index 3f02f69362..87f508c40b 100644 --- a/gdk/gdkpixbuf-render.c +++ b/gdk/gdkpixbuf-render.c @@ -133,6 +133,8 @@ gdk_pixbuf_render_to_drawable (GdkPixbuf *pixbuf, GdkDrawable *drawable, ArtIRect dest_rect, req_rect, area_rect; GdkBitmap *bitmap; GdkGC *gc; + guchar *buf; + int rowstride; g_return_if_fail (pixbuf != NULL); apb = pixbuf->art_pixbuf; @@ -163,5 +165,13 @@ gdk_pixbuf_render_to_drawable (GdkPixbuf *pixbuf, GdkDrawable *drawable, gdk_gc_set_clip_origin (gc, dest_x, dest_y); } - + /* Sigh, GdkRGB does not have gdk_draw_rgb_32_image_dithalign(), so we + * have to pack the buffer first. + */ + if (apb->has_alpha) + buf = remove_alpha (apb, src_x, src_y, width, height, &rowstride); + else { + buf = apb->pixels + src_y * apb->rowstride + src_x * 3; + rowstride = apb->rowstride; + } } -- 2.30.2